import 'dart:async';
import 'dart:io';

class FileReadWrite {
  /**
   * 写入文件
   */
  static Future<void> fileWrite(String fileDir, String content) async {
    File file = File(fileDir);

    //不存在，创建
    if (await file.exists() == false) {
      await file.create(recursive: true);
    }

    try {
      await file.writeAsString(content);
    } catch (e) {
      print("fileWrite e ($e)");
    }
  }

  /**
   * 读取文件
   */
  static Future<String> fileRead(String fileDir) async {
    print("读取path = ${fileDir}");
    File file = File(fileDir);

    //不存在，
    if (await file.exists() == false) {
      return "";
    }

    try {
      return await file.readAsString();
    } catch (e) {
      print("fileRead e ($e)");
    }

    return "";
  }

  /**
   * 文件删除
   */
  static fileDelete(String fileDir) async {
    File file = File(fileDir);

    //存在删除
    if (await file.exists() == true) {
      try {
        await file.delete();
      } catch (e) {
        print("fileDelete e(${e})");
      }
    }
  }

  /**
   * 目录删除
   */
  static fileDirDelete(String fileDir) async {
    Directory dir = Directory(fileDir);

    //存在删除
    if (await dir.exists() == true) {
      try {
        await dir.delete(recursive: true);
      } catch (e) {
        print("fileDirDelete e(${e})");
      }
    }
  }

  /**
   * 复制文件
   */
  static fileCopy(String oldFile, String newFile) async {
    File file = File(oldFile);

    //存在，复制
    if (await file.exists() == true) {
      try {
        await file.copy(newFile);
      } catch (e) {
        print("fileCopy e(${e})");
      }
    }
  }
}
